\hypertarget{classsfmtplus_1_1sse2__fast__mersenne__twister}{
\section{sfmtplus\-:\-:sse2\-\_\-fast\-\_\-mersenne\-\_\-twister$<$ mexp, pos1, sl1, sl2, sr1, sr2, msk1, msk2, msk3, msk4, parity1, parity2, parity3, parity4 $>$ \-Class \-Template \-Reference}
\label{classsfmtplus_1_1sse2__fast__mersenne__twister}\index{sfmtplus\-::sse2\-\_\-fast\-\_\-mersenne\-\_\-twister$<$ mexp, pos1, sl1, sl2, sr1, sr2, msk1, msk2, msk3, msk4, parity1, parity2, parity3, parity4 $>$@{sfmtplus\-::sse2\-\_\-fast\-\_\-mersenne\-\_\-twister$<$ mexp, pos1, sl1, sl2, sr1, sr2, msk1, msk2, msk3, msk4, parity1, parity2, parity3, parity4 $>$}}
}
\subsection*{\-Classes}
\begin{DoxyCompactItemize}
\item 
union \hyperlink{unionsfmtplus_1_1sse2__fast__mersenne__twister_1_1w128__t}{w128\-\_\-t}
\end{DoxyCompactItemize}
\subsection*{\-Public \-Types}
\begin{DoxyCompactItemize}
\item 
enum \{ \*
{\bfseries \-M\-E\-X\-P} =  mexp, 
{\bfseries \-P\-O\-S1} =  pos1, 
{\bfseries \-S\-L1} =  sl1, 
{\bfseries \-S\-L2} =  sl2, 
\*
{\bfseries \-S\-R1} =  sr1, 
{\bfseries \-S\-R2} =  sr2, 
{\bfseries \-M\-S\-K1} =  msk1, 
{\bfseries \-M\-S\-K2} =  msk2, 
\*
{\bfseries \-M\-S\-K3} =  msk3, 
{\bfseries \-M\-S\-K4} =  msk4, 
{\bfseries \-P\-A\-R\-I\-T\-Y1} =  parity1, 
{\bfseries \-P\-A\-R\-I\-T\-Y2} =  parity2, 
\*
{\bfseries \-P\-A\-R\-I\-T\-Y3} =  parity3, 
{\bfseries \-P\-A\-R\-I\-T\-Y4} =  parity4, 
{\bfseries \-N} =  \-M\-E\-X\-P / 128 + 1, 
{\bfseries \-N32} =  \-N $\ast$ 4, 
\*
{\bfseries \-N64} =  \-N $\ast$ 2
 \}
\end{DoxyCompactItemize}
\subsection*{\-Public \-Member \-Functions}
\begin{DoxyCompactItemize}
\item 
\hypertarget{classsfmtplus_1_1sse2__fast__mersenne__twister_a2f2d24eb68a36bee72135ea82fb4139d}{
{\bfseries sse2\-\_\-fast\-\_\-mersenne\-\_\-twister} (uint32\-\_\-t seed)}
\label{classsfmtplus_1_1sse2__fast__mersenne__twister_a2f2d24eb68a36bee72135ea82fb4139d}

\item 
\hypertarget{classsfmtplus_1_1sse2__fast__mersenne__twister_ab8240a1cbf9cfb240ac27ffc7bb9b568}{
{\bfseries sse2\-\_\-fast\-\_\-mersenne\-\_\-twister} (uint32\-\_\-t $\ast$init\-\_\-key, int key\-\_\-length)}
\label{classsfmtplus_1_1sse2__fast__mersenne__twister_ab8240a1cbf9cfb240ac27ffc7bb9b568}

\item 
\hypertarget{classsfmtplus_1_1sse2__fast__mersenne__twister_a8ee7c3ebdbe2ec0c2a24bd98e9516c02}{
void {\bfseries gen\-\_\-rand\-\_\-all} (void)}
\label{classsfmtplus_1_1sse2__fast__mersenne__twister_a8ee7c3ebdbe2ec0c2a24bd98e9516c02}

\item 
\hypertarget{classsfmtplus_1_1sse2__fast__mersenne__twister_a84b678e8991cc2e342a78d56ae817068}{
void {\bfseries gen\-\_\-rand\-\_\-array} (\hyperlink{unionsfmtplus_1_1sse2__fast__mersenne__twister_1_1w128__t}{w128\-\_\-t} $\ast$array, int size)}
\label{classsfmtplus_1_1sse2__fast__mersenne__twister_a84b678e8991cc2e342a78d56ae817068}

\item 
\hypertarget{classsfmtplus_1_1sse2__fast__mersenne__twister_ae30751d3a8d38c98dc3a51b6366234fd}{
void {\bfseries init\-\_\-gen\-\_\-rand} (uint32\-\_\-t seed)}
\label{classsfmtplus_1_1sse2__fast__mersenne__twister_ae30751d3a8d38c98dc3a51b6366234fd}

\item 
\hypertarget{classsfmtplus_1_1sse2__fast__mersenne__twister_a13dd7f7db6e2999b9de60db10292cba0}{
void {\bfseries init\-\_\-by\-\_\-array} (uint32\-\_\-t $\ast$init\-\_\-key, int key\-\_\-length)}
\label{classsfmtplus_1_1sse2__fast__mersenne__twister_a13dd7f7db6e2999b9de60db10292cba0}

\item 
\hypertarget{classsfmtplus_1_1sse2__fast__mersenne__twister_aa51e133967d463635cf16aa547df8ebf}{
forceinline void {\bfseries fill\-\_\-array32} (uint32\-\_\-t $\ast$array, int size)}
\label{classsfmtplus_1_1sse2__fast__mersenne__twister_aa51e133967d463635cf16aa547df8ebf}

\item 
\hypertarget{classsfmtplus_1_1sse2__fast__mersenne__twister_ad4f3bddf5dc642057eb429a99ffbc215}{
forceinline void {\bfseries fill\-\_\-array64} (uint64\-\_\-t $\ast$array, int size)}
\label{classsfmtplus_1_1sse2__fast__mersenne__twister_ad4f3bddf5dc642057eb429a99ffbc215}

\item 
\hypertarget{classsfmtplus_1_1sse2__fast__mersenne__twister_adb8ae74c706d4dfd61b8ecf13156d2ae}{
forceinline const char $\ast$ {\bfseries get\-\_\-idstring} (void) const }
\label{classsfmtplus_1_1sse2__fast__mersenne__twister_adb8ae74c706d4dfd61b8ecf13156d2ae}

\item 
\hypertarget{classsfmtplus_1_1sse2__fast__mersenne__twister_abb3949667f7452c26c6de32963f5b15c}{
forceinline int {\bfseries get\-\_\-min\-\_\-array\-\_\-size32} (void) const }
\label{classsfmtplus_1_1sse2__fast__mersenne__twister_abb3949667f7452c26c6de32963f5b15c}

\item 
\hypertarget{classsfmtplus_1_1sse2__fast__mersenne__twister_a7df88039b98418e92e57b5a50d7b4916}{
forceinline int {\bfseries get\-\_\-min\-\_\-array\-\_\-size64} (void) const }
\label{classsfmtplus_1_1sse2__fast__mersenne__twister_a7df88039b98418e92e57b5a50d7b4916}

\item 
\hypertarget{classsfmtplus_1_1sse2__fast__mersenne__twister_a973783199a8c2372f87f44d8bf5fb601}{
forceinline double {\bfseries genrand\-\_\-real3} (void)}
\label{classsfmtplus_1_1sse2__fast__mersenne__twister_a973783199a8c2372f87f44d8bf5fb601}

\item 
\hypertarget{classsfmtplus_1_1sse2__fast__mersenne__twister_a0a01382c60a770d6e2d71f3f5c013b98}{
forceinline double {\bfseries genrand\-\_\-real2} (void)}
\label{classsfmtplus_1_1sse2__fast__mersenne__twister_a0a01382c60a770d6e2d71f3f5c013b98}

\item 
\hypertarget{classsfmtplus_1_1sse2__fast__mersenne__twister_ac0af42fef9ff02b6ff423c6d5960b478}{
forceinline double {\bfseries genrand\-\_\-real1} (void)}
\label{classsfmtplus_1_1sse2__fast__mersenne__twister_ac0af42fef9ff02b6ff423c6d5960b478}

\item 
\hypertarget{classsfmtplus_1_1sse2__fast__mersenne__twister_a6336088c881403fe01077283808ce710}{
forceinline double {\bfseries genrand\-\_\-res53} (void)}
\label{classsfmtplus_1_1sse2__fast__mersenne__twister_a6336088c881403fe01077283808ce710}

\item 
\hypertarget{classsfmtplus_1_1sse2__fast__mersenne__twister_a6203068952363d6adb81ac2cd01e09b4}{
forceinline double {\bfseries genrand\-\_\-res53\-\_\-mix} (void)}
\label{classsfmtplus_1_1sse2__fast__mersenne__twister_a6203068952363d6adb81ac2cd01e09b4}

\item 
\hypertarget{classsfmtplus_1_1sse2__fast__mersenne__twister_aba0eb2154496e842ae117498c6262a7b}{
uint32\-\_\-t {\bfseries gen\-\_\-rand32} (void)}
\label{classsfmtplus_1_1sse2__fast__mersenne__twister_aba0eb2154496e842ae117498c6262a7b}

\item 
\hypertarget{classsfmtplus_1_1sse2__fast__mersenne__twister_a2f957fa7d919a55143c6a08150dfe582}{
uint64\-\_\-t {\bfseries gen\-\_\-rand64} (void)}
\label{classsfmtplus_1_1sse2__fast__mersenne__twister_a2f957fa7d919a55143c6a08150dfe582}

\item 
\hypertarget{classsfmtplus_1_1sse2__fast__mersenne__twister_aab7b1a5ee864ae25161903b532e33759}{
\-\_\-\-\_\-m128i {\bfseries gen\-\_\-randx128} (void)}
\label{classsfmtplus_1_1sse2__fast__mersenne__twister_aab7b1a5ee864ae25161903b532e33759}

\end{DoxyCompactItemize}
\subsection*{\-Protected \-Member \-Functions}
\begin{DoxyCompactItemize}
\item 
\hypertarget{classsfmtplus_1_1sse2__fast__mersenne__twister_a9040df9bdb5de831865a03a7b487f334}{
void {\bfseries period\-\_\-certification} (void)}
\label{classsfmtplus_1_1sse2__fast__mersenne__twister_a9040df9bdb5de831865a03a7b487f334}

\end{DoxyCompactItemize}
\subsection*{\-Static \-Protected \-Member \-Functions}
\begin{DoxyCompactItemize}
\item 
\hypertarget{classsfmtplus_1_1sse2__fast__mersenne__twister_a1bce89f383305ef6554a1317d944974c}{
static forceinline double {\bfseries to\-\_\-real2} (uint32\-\_\-t v)}
\label{classsfmtplus_1_1sse2__fast__mersenne__twister_a1bce89f383305ef6554a1317d944974c}

\item 
\hypertarget{classsfmtplus_1_1sse2__fast__mersenne__twister_a0956cfc8b1997e608c256d82f2fdece4}{
static forceinline double {\bfseries to\-\_\-real1} (uint32\-\_\-t v)}
\label{classsfmtplus_1_1sse2__fast__mersenne__twister_a0956cfc8b1997e608c256d82f2fdece4}

\item 
\hypertarget{classsfmtplus_1_1sse2__fast__mersenne__twister_a2c1101fda53bcdb5b7cef81225fdea90}{
static forceinline double {\bfseries to\-\_\-real3} (uint32\-\_\-t v)}
\label{classsfmtplus_1_1sse2__fast__mersenne__twister_a2c1101fda53bcdb5b7cef81225fdea90}

\item 
\hypertarget{classsfmtplus_1_1sse2__fast__mersenne__twister_a4a8c1c46d3293956c29387f3a6f6c8c8}{
static forceinline double {\bfseries to\-\_\-res53} (uint64\-\_\-t v)}
\label{classsfmtplus_1_1sse2__fast__mersenne__twister_a4a8c1c46d3293956c29387f3a6f6c8c8}

\item 
\hypertarget{classsfmtplus_1_1sse2__fast__mersenne__twister_a8d13b15adf90a8e807fa1b9144f10bc9}{
static forceinline double {\bfseries to\-\_\-res53\-\_\-mix} (uint32\-\_\-t x, uint32\-\_\-t y)}
\label{classsfmtplus_1_1sse2__fast__mersenne__twister_a8d13b15adf90a8e807fa1b9144f10bc9}

\item 
\hypertarget{classsfmtplus_1_1sse2__fast__mersenne__twister_adfc85e9faef84d6033a8c41ad82e2cdb}{
static forceinline int {\bfseries idxof} (int i)}
\label{classsfmtplus_1_1sse2__fast__mersenne__twister_adfc85e9faef84d6033a8c41ad82e2cdb}

\item 
\hypertarget{classsfmtplus_1_1sse2__fast__mersenne__twister_ad86f85cc4f42617d7dbd40bc7c1878eb}{
static forceinline uint32\-\_\-t {\bfseries func1} (uint32\-\_\-t x)}
\label{classsfmtplus_1_1sse2__fast__mersenne__twister_ad86f85cc4f42617d7dbd40bc7c1878eb}

\item 
\hypertarget{classsfmtplus_1_1sse2__fast__mersenne__twister_a0b3a58c91d138e39b7ab2b788af598eb}{
static forceinline uint32\-\_\-t {\bfseries func2} (uint32\-\_\-t x)}
\label{classsfmtplus_1_1sse2__fast__mersenne__twister_a0b3a58c91d138e39b7ab2b788af598eb}

\item 
\hypertarget{classsfmtplus_1_1sse2__fast__mersenne__twister_aeadcbfebaeeb0d8b0b30fdb2c8c63ed2}{
static \-\_\-\-\_\-m128i {\bfseries mm\-\_\-recursion} (\-\_\-\-\_\-m128i $\ast$a, const \-\_\-\-\_\-m128i $\ast$b, \-\_\-\-\_\-m128i c, \-\_\-\-\_\-m128i d, \-\_\-\-\_\-m128i mask)}
\label{classsfmtplus_1_1sse2__fast__mersenne__twister_aeadcbfebaeeb0d8b0b30fdb2c8c63ed2}

\end{DoxyCompactItemize}
\subsection*{\-Protected \-Attributes}
\begin{DoxyCompactItemize}
\item 
\hypertarget{classsfmtplus_1_1sse2__fast__mersenne__twister_ab0eb025388f2016557c5faf801ac1b65}{
\hyperlink{unionsfmtplus_1_1sse2__fast__mersenne__twister_1_1w128__t}{w128\-\_\-t} {\bfseries sfmt} \mbox{[}\-N\mbox{]}}
\label{classsfmtplus_1_1sse2__fast__mersenne__twister_ab0eb025388f2016557c5faf801ac1b65}

\item 
\hypertarget{classsfmtplus_1_1sse2__fast__mersenne__twister_a4607224454b9e298b49b2db750d36885}{
uint32\-\_\-t $\ast$ {\bfseries psfmt32}}
\label{classsfmtplus_1_1sse2__fast__mersenne__twister_a4607224454b9e298b49b2db750d36885}

\item 
\hypertarget{classsfmtplus_1_1sse2__fast__mersenne__twister_aba210954cadedf9020db16b1e09274a0}{
uint64\-\_\-t $\ast$ {\bfseries psfmt64}}
\label{classsfmtplus_1_1sse2__fast__mersenne__twister_aba210954cadedf9020db16b1e09274a0}

\item 
\hypertarget{classsfmtplus_1_1sse2__fast__mersenne__twister_a985a8088290744af5893c25144aef58c}{
int {\bfseries idx}}
\label{classsfmtplus_1_1sse2__fast__mersenne__twister_a985a8088290744af5893c25144aef58c}

\item 
\hypertarget{classsfmtplus_1_1sse2__fast__mersenne__twister_aa0e6fe3e559895c1b65c71d39dbe30e3}{
int {\bfseries initialized}}
\label{classsfmtplus_1_1sse2__fast__mersenne__twister_aa0e6fe3e559895c1b65c71d39dbe30e3}

\item 
\hypertarget{classsfmtplus_1_1sse2__fast__mersenne__twister_a8486601a7ed82c754346b6fdabed7ac5}{
uint32\-\_\-t {\bfseries parity} \mbox{[}4\mbox{]}}
\label{classsfmtplus_1_1sse2__fast__mersenne__twister_a8486601a7ed82c754346b6fdabed7ac5}

\item 
\hypertarget{classsfmtplus_1_1sse2__fast__mersenne__twister_a573de14c1b184021d87682717a36e129}{
char {\bfseries idstring} \mbox{[}80\mbox{]}}
\label{classsfmtplus_1_1sse2__fast__mersenne__twister_a573de14c1b184021d87682717a36e129}

\end{DoxyCompactItemize}
\subsubsection*{template$<$uint32\-\_\-t mexp, uint32\-\_\-t pos1, uint32\-\_\-t sl1, uint32\-\_\-t sl2, uint32\-\_\-t sr1, uint32\-\_\-t sr2, uint32\-\_\-t msk1, uint32\-\_\-t msk2, uint32\-\_\-t msk3, uint32\-\_\-t msk4, uint32\-\_\-t parity1, uint32\-\_\-t parity2, uint32\-\_\-t parity3, uint32\-\_\-t parity4$>$ class sfmtplus\-::sse2\-\_\-fast\-\_\-mersenne\-\_\-twister$<$ mexp, pos1, sl1, sl2, sr1, sr2, msk1, msk2, msk3, msk4, parity1, parity2, parity3, parity4 $>$}



\-The documentation for this class was generated from the following file\-:\begin{DoxyCompactItemize}
\item 
sfmtrand/sfmtrand.\-h\end{DoxyCompactItemize}
